using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Hmw;
using net_work.Data.Entity.Hmw;
using net_work.Data.VO.Hmw;

namespace net_work.IService.Hmw;

public interface IBankQuestionService
{
    /// <summary>
    /// 分页查询题库题目
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<BankQuestionResult>> GetBankQuestionsPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据题库题目ID查询题库题目信息
    /// </summary>
    /// <param name="bankQuestionId">题库题目ID</param>
    /// <returns>题库题目信息</returns>
    Task<BankQuestion?> SelectByIdAsync(long bankQuestionId);

    /// <summary>
    /// 插入题库题目
    /// </summary>
    /// <param name="bankQuestionAddRequest">新增题库题目实体</param>
    /// <returns>新增题库题目ID</returns>
    Task<long> InsertBankQuestion(BankQuestionAddRequest bankQuestionAddRequest);

    /// <summary>
    /// 更新题库题目信息
    /// </summary>
    /// <param name="bankQuestionUpdateRequest">更新题库题目信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateBankQuestion(BankQuestionUpdateRequest bankQuestionUpdateRequest);

    /// <summary>
    /// 删除题库题目
    /// </summary>
    /// <param name="ids">题库题目ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteBankQuestionByIds(List<long> ids);
}